Improvements in communications networks has led to new designs that support high bandwidths and multiple devices. In conjunction with the advent of improved communication networks, microprocessors with high operating frequencies and large memory storage are also being developed. Accordingly, the combination of high bandwidth communication networks and high speed microprocessors has resulted in standard text communication being replaced with multimedia communication. Multimedia communication describes using a combination of audio, video, and/or text to communicate between remote devices. To support multimedia communication, multimedia applications provide a wide range of peripherals connected to a computer system. The peripherals range from digital joysticks, scanners, digital speakers, digital cameras, to personal computer telephones.
Typically, in multimedia communication a segment of data is digitized and divided into packets for transmission across a high bandwidth communication network to a destination device. Subsequently, the destination device receives the transmitted packets and regenerates the segment of data. High speed communication networks and high speed processors create performance gains that allow the transfer and processing of the large volumes of data associated with multimedia communication. High speed communication networks, however, do not create performance gains during real time multimedia communication between peripherals coupled to a computer system.
In real time multimedia communication, time varying signals that require serial processing are transmitted across a network that couples different peripherals. Typical networks create performance loss in real time multimedia communication because packets are indiscriminately delayed during transmission. Accordingly, during serial processing of received packets the data included in a delayed packet is simply lost, thus resulting in audio or visual distortion. Another disadvantage of a typical networks is that no guaranteed bandwidth exist, thus the rate of real time communication is varied between remote devices resulting in signal distortions. Yet another disadvantage of typical networks results from configuration requirements. Connecting multimedia peripherals via typical networks requires reconfiguration of the computer system. Typically, the reconfiguration requires opening the computer system and manipulating dip switches or adding peripheral cards.
To counteract the performance loss associated with typical networks, a universal serial bus ("USB") system was developed in the prior art. USB systems provide a transmission media with a guaranteed bandwidth and bounded delays between packet reception. USB systems also provide a robust interface that allows multiple peripheral devices to couple to a computer system without reconfiguration concerns.
FIG. 1 illustrates a network system 100 using a USB. In particular, the output of source 105, data 110, is coded in code 115 for transmission along USB 130. Subsequent to the coding process, packetizer 120 generates individual packets of data for transmission along USB 130. The data is then transmitted to either a single destination device, destination 140, or data streams are generated and transmitted to two destination devices, destination 140 and destination 150.
To maintain a guaranteed transmission bandwidth between devices, USB 130 uses an identified periodic event, such as a start of frame ("SOF"), to schedule packet transmission. FIG. 2 illustrates the timing of SOF packets in USB 130. In particular, for every SOF time period along time frame 200, system 100 transmits a packet along USB 130. Accordingly, transmitted packet 215 is received by a destination device prior to SOF 220. Similarly, packet 225 is received prior to SOF 230 and packet 235 is received prior to SOF 240. Thus, the arrival or transmission of a given packet is bounded between a SOF time period resulting in a defined transmission bandwidth. One disadvantage of this approach is that variable loading from alternate sources deviates the arrival of a packet within a SOF period, thus creating data distortion during regeneration of transmitted data.
To counteract the variable delay of a packet within an SOF period, some destination devices use a replay strategy. Typically, the replay strategy includes generating parallel data from a serial network input and storing the parallel data in a first-in-first-out ("FIFO") buffer. The FIFO buffer stores the parallel data in a first SOF time period and outputs the data in a subsequent SOF time period, thus removing the variable delay in packet arrival. One disadvantage of this approach is the required buffer size. Typically, the FIFO buffer must be able to store data equivalent to twice the size of the transmitted packet. A large FIFO is necessary to ensures adequate storage space when a packet has a maximum delay in a first frame and a packet in the subsequent frame is received immediately following a SOF event signal. A second disadvantage of this approach is that buffered data is outputted only after a subsequent SOF signal, thus creating a significant delay in the regeneration/playback of transmitted data. Another disadvantage of this approach is that the buffer design requires processor intervention to ensure synchronization between multiple data streams transmitted to multiple destination devices.